home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / quote2.arc / QUOTE.C < prev    next >
Text File  |  1986-09-20  |  1KB  |  67 lines

  1. #include <dos.h>
  2. #include <stdio.h>
  3. main()
  4. {
  5. char name[60],outname[60];
  6. long p,start,end;
  7. int r,ch;
  8. char *buffer;
  9. FILE *index,*quote;
  10. char *calloc();
  11. unsigned size;
  12. long end_file;
  13. int count;
  14.  
  15. randomize();
  16.  
  17. index = fopen("quote.idx","ab"); end_file = ftell(index);
  18. index = fopen("quote.idx","rb");
  19. quote = fopen("quote.dat","rb");
  20.  
  21. fseek(index,(end_file - 10L),0);
  22. fscanf(index,"%10d",&count); /* find number of quotes available */
  23.  
  24. r = random(1,count);
  25. p = (long) ((r - 1)  * 23L); /* pick one at random */
  26.  
  27. fseek(index,p,0);
  28. fscanf(index,"%10ld %10ld",&start,&end); /* get quotes start & end */
  29.  
  30. size = (unsigned) (end - start);
  31. buffer = calloc(1,size);
  32. fseek(quote,start,0);
  33. fread(buffer,size-1,1,quote); /* get the text of the quote */
  34.  
  35. out_str(buffer,size);  /* print it to the console */
  36.  
  37. free(buffer); /* clean up */
  38. }
  39.  
  40. int get_seed()
  41. {
  42.   union REGS inregs,outregs;
  43.   inregs.x.ax = 0x2c00; /* get time function number */
  44.   intdos(&inregs,&outregs);
  45.   return(outregs.h.dh * 100 + outregs.h.dl);
  46. }
  47.  
  48. int random(start,range)
  49. int start,range;
  50. {
  51.   return((rand() % range) + start);
  52. }
  53.  
  54. int randomize()
  55. {
  56.   srand(get_seed());
  57. }
  58.  
  59. int out_str(buf,size)
  60. char *buf;
  61. int size;
  62. {
  63.   int i;
  64.   for(i=0;i<size;i++) putchar(*(buf++));
  65. }
  66.  
  67.